
#pragma warning( disable: 4049 )
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif

#ifndef ___UcPp_h__
#define ___UcPp_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
#ifndef __IUcPpUcadInput_FWD_DEFINED__
#define __IUcPpUcadInput_FWD_DEFINED__
typedef interface IUcPpUcadInput IUcPpUcadInput;
#endif
#ifndef __IUcPpPalette_FWD_DEFINED__
#define __IUcPpPalette_FWD_DEFINED__
typedef interface IUcPpPalette IUcPpPalette;
#endif
#ifndef __IUcPpPaletteEvents_FWD_DEFINED__
#define __IUcPpPaletteEvents_FWD_DEFINED__
typedef interface IUcPpPaletteEvents IUcPpPaletteEvents;
#endif
#ifndef __IUcPpPaletteSet_FWD_DEFINED__
#define __IUcPpPaletteSet_FWD_DEFINED__
typedef interface IUcPpPaletteSet IUcPpPaletteSet;
#endif
#ifndef __IUcPpPaletteSetEvents_FWD_DEFINED__
#define __IUcPpPaletteSetEvents_FWD_DEFINED__
typedef interface IUcPpPaletteSetEvents IUcPpPaletteSetEvents;
#endif
#ifndef __IUcPpNavTreeNode_FWD_DEFINED__
#define __IUcPpNavTreeNode_FWD_DEFINED__
typedef interface IUcPpNavTreeNode IUcPpNavTreeNode;
#endif
#ifndef __IUcPpNavTreeNodeCollectionIter_FWD_DEFINED__
#define __IUcPpNavTreeNodeCollectionIter_FWD_DEFINED__
typedef interface IUcPpNavTreeNodeCollectionIter IUcPpNavTreeNodeCollectionIter;
#endif
#ifndef __IUcPpNavTreeNodeCollection_FWD_DEFINED__
#define __IUcPpNavTreeNodeCollection_FWD_DEFINED__
typedef interface IUcPpNavTreeNodeCollection IUcPpNavTreeNodeCollection;
#endif
#ifndef __IUcPpNavTreeCmdBtn_FWD_DEFINED__
#define __IUcPpNavTreeCmdBtn_FWD_DEFINED__
typedef interface IUcPpNavTreeCmdBtn IUcPpNavTreeCmdBtn;
#endif
#ifndef __IUcPpNavTreeCmdBtnCollectionIter_FWD_DEFINED__
#define __IUcPpNavTreeCmdBtnCollectionIter_FWD_DEFINED__
typedef interface IUcPpNavTreeCmdBtnCollectionIter IUcPpNavTreeCmdBtnCollectionIter;
#endif
#ifndef __IUcPpNavTreeCmdBtnCollection_FWD_DEFINED__
#define __IUcPpNavTreeCmdBtnCollection_FWD_DEFINED__
typedef interface IUcPpNavTreeCmdBtnCollection IUcPpNavTreeCmdBtnCollection;
#endif
#ifndef __IUcPpNavTree_FWD_DEFINED__
#define __IUcPpNavTree_FWD_DEFINED__
typedef interface IUcPpNavTree IUcPpNavTree;
#endif
#ifndef __IUcPpNavTreeEvents_FWD_DEFINED__
#define __IUcPpNavTreeEvents_FWD_DEFINED__
typedef interface IUcPpNavTreeEvents IUcPpNavTreeEvents;
#endif
#ifndef __IUcPpPalette2_FWD_DEFINED__
#define __IUcPpPalette2_FWD_DEFINED__
typedef interface IUcPpPalette2 IUcPpPalette2;
#endif
#ifndef __UcPpUcadInput_FWD_DEFINED__
#define __UcPpUcadInput_FWD_DEFINED__

#ifdef __cplusplus
typedef class UcPpUcadInput UcPpUcadInput;
#else
typedef struct UcPpUcadInput UcPpUcadInput;
#endif

#endif
#ifndef __UcPpPaletteSet_FWD_DEFINED__
#define __UcPpPaletteSet_FWD_DEFINED__

#ifdef __cplusplus
typedef class UcPpPaletteSet UcPpPaletteSet;
#else
typedef struct UcPpPaletteSet UcPpPaletteSet;
#endif

#endif
#ifndef __UcPpPalette_FWD_DEFINED__
#define __UcPpPalette_FWD_DEFINED__

#ifdef __cplusplus
typedef class UcPpPalette UcPpPalette;
#else
typedef struct UcPpPalette UcPpPalette;
#endif

#endif
#ifndef __UcPpPalette2_FWD_DEFINED__
#define __UcPpPalette2_FWD_DEFINED__

#ifdef __cplusplus
typedef class UcPpPalette2 UcPpPalette2;
#else
typedef struct UcPpPalette2 UcPpPalette2;
#endif

#endif
#ifndef __UcPpNavTree_FWD_DEFINED__
#define __UcPpNavTree_FWD_DEFINED__

#ifdef __cplusplus
typedef class UcPpNavTree UcPpNavTree;
#else
typedef struct UcPpNavTree UcPpNavTree;
#endif

#endif
#ifndef __UcPpNavTreeNode_FWD_DEFINED__
#define __UcPpNavTreeNode_FWD_DEFINED__

#ifdef __cplusplus
typedef class UcPpNavTreeNode UcPpNavTreeNode;
#else
typedef struct UcPpNavTreeNode UcPpNavTreeNode;
#endif

#endif
#include "oaidl.h"
#include "ocidl.h"
#include "acpi.h"

#ifdef __cplusplus
extern "C"{
#endif

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * );
#define UCPPINPUT_ID_VALUE           1
#define UCPPINPUT_ID_STATUS          2
#define UCPPINPUT_ID_DOCUMENT        3
#define UCPPINPUT_ID_CRONLY          4
#define UCPPINPUT_ID_PROMPT          5
#define UCPPINPUT_ID_PROMPT2         6
#define UCPPINPUT_ID_INITGETBIT      7
#define UCPPINPUT_ID_INITGETKWORD    8
#define UCPPINPUT_ID_BASEPOINT       9
#define UCPPINPUT_ID_PROMPTTYPE      10
#define UCPPINPUT_ID_ENABLENOTIFICATION 11
extern RPC_IF_HANDLE __MIDL_itf_UcPp_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPp_0000_v0_0_s_ifspec;

#ifndef __IUcPpUcadInput_INTERFACE_DEFINED__
#define __IUcPpUcadInput_INTERFACE_DEFINED__
typedef 
enum StatusType
    {
        StatusPrompting	= -1,
        StatusRTNORM	= 5100,
        StatusRTERROR	= -5001,
        StatusRTCAN	= -5002,
        StatusRTNONE	= 5000,
        StatusRTREJ	= -5003,
        StatusRTKWORD	= -5005,
        StatusMODELESS	= 5027
    } 	StatusType;

typedef 
enum PromptType
    {
        GetAngle	= 1,
        GetCorner	= 2,
        GetDist	= 3,
        GetInt	= 4,
        GetKword	= 5,
        GetOrient	= 6,
        GetPoint	= 7,
        GetReal	= 8,
        GetString	= 9,
        EntSel	= 10
    } 	PromptType;
EXTERN_C const IID IID_IUcPpUcadInput;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("21186390-9FDA-40D7-82C1-FB8C5153B91E")
    IUcPpUcadInput : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE get_Value(
             VARIANT *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Value(
             VARIANT newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Status(
             long *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Status(
             long newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Document(
             IUnknown **pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Document(
             IUnknown *newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_CrOnly(
             VARIANT_BOOL *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_CrOnly(
             VARIANT_BOOL newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Prompt(
             BSTR *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Prompt(
             BSTR newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Prompt2(
             BSTR *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Prompt2(
             BSTR newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_InitGetBit(
             long *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_InitGetBit(
             long newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_InitGetKword(
             BSTR *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_InitGetKword(
             BSTR newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_BasePoint(
             VARIANT *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_BasePoint(
             VARIANT newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_PromptType(
             short *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_PromptType(
             short newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_EnableNotification(
             VARIANT_BOOL *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_EnableNotification(
             VARIANT_BOOL newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE DoPrompt( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE CancelPrompt( void) = 0;

    };

#else

    typedef struct IUcPpUcadInputVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpUcadInput * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpUcadInput * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpUcadInput * This);

         HRESULT ( STDMETHODCALLTYPE *get_Value )(
            IUcPpUcadInput * This,
             VARIANT *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_Value )(
            IUcPpUcadInput * This,
             VARIANT newVal);

         HRESULT ( STDMETHODCALLTYPE *get_Status )(
            IUcPpUcadInput * This,
             long *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_Status )(
            IUcPpUcadInput * This,
             long newVal);

         HRESULT ( STDMETHODCALLTYPE *get_Document )(
            IUcPpUcadInput * This,
             IUnknown **pVal);

         HRESULT ( STDMETHODCALLTYPE *put_Document )(
            IUcPpUcadInput * This,
             IUnknown *newVal);

         HRESULT ( STDMETHODCALLTYPE *get_CrOnly )(
            IUcPpUcadInput * This,
             VARIANT_BOOL *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_CrOnly )(
            IUcPpUcadInput * This,
             VARIANT_BOOL newVal);

         HRESULT ( STDMETHODCALLTYPE *get_Prompt )(
            IUcPpUcadInput * This,
             BSTR *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_Prompt )(
            IUcPpUcadInput * This,
             BSTR newVal);

         HRESULT ( STDMETHODCALLTYPE *get_Prompt2 )(
            IUcPpUcadInput * This,
             BSTR *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_Prompt2 )(
            IUcPpUcadInput * This,
             BSTR newVal);

         HRESULT ( STDMETHODCALLTYPE *get_InitGetBit )(
            IUcPpUcadInput * This,
             long *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_InitGetBit )(
            IUcPpUcadInput * This,
             long newVal);

         HRESULT ( STDMETHODCALLTYPE *get_InitGetKword )(
            IUcPpUcadInput * This,
             BSTR *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_InitGetKword )(
            IUcPpUcadInput * This,
             BSTR newVal);

         HRESULT ( STDMETHODCALLTYPE *get_BasePoint )(
            IUcPpUcadInput * This,
             VARIANT *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_BasePoint )(
            IUcPpUcadInput * This,
             VARIANT newVal);

         HRESULT ( STDMETHODCALLTYPE *get_PromptType )(
            IUcPpUcadInput * This,
             short *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_PromptType )(
            IUcPpUcadInput * This,
             short newVal);

         HRESULT ( STDMETHODCALLTYPE *get_EnableNotification )(
            IUcPpUcadInput * This,
             VARIANT_BOOL *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_EnableNotification )(
            IUcPpUcadInput * This,
             VARIANT_BOOL newVal);

         HRESULT ( STDMETHODCALLTYPE *DoPrompt )(
            IUcPpUcadInput * This);

         HRESULT ( STDMETHODCALLTYPE *CancelPrompt )(
            IUcPpUcadInput * This);

        END_INTERFACE
    } IUcPpUcadInputVtbl;

    interface IUcPpUcadInput
    {
        CONST_VTBL struct IUcPpUcadInputVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpUcadInput_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpUcadInput_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpUcadInput_Release(This)	\
    ((This)->lpVtbl -> Release(This))
#define IUcPpUcadInput_get_Value(This,pVal)	\
    ((This)->lpVtbl -> get_Value(This,pVal))

#define IUcPpUcadInput_put_Value(This,newVal)	\
    ((This)->lpVtbl -> put_Value(This,newVal))

#define IUcPpUcadInput_get_Status(This,pVal)	\
    ((This)->lpVtbl -> get_Status(This,pVal))

#define IUcPpUcadInput_put_Status(This,newVal)	\
    ((This)->lpVtbl -> put_Status(This,newVal))

#define IUcPpUcadInput_get_Document(This,pVal)	\
    ((This)->lpVtbl -> get_Document(This,pVal))

#define IUcPpUcadInput_put_Document(This,newVal)	\
    ((This)->lpVtbl -> put_Document(This,newVal))

#define IUcPpUcadInput_get_CrOnly(This,pVal)	\
    ((This)->lpVtbl -> get_CrOnly(This,pVal))

#define IUcPpUcadInput_put_CrOnly(This,newVal)	\
    ((This)->lpVtbl -> put_CrOnly(This,newVal))

#define IUcPpUcadInput_get_Prompt(This,pVal)	\
    ((This)->lpVtbl -> get_Prompt(This,pVal))

#define IUcPpUcadInput_put_Prompt(This,newVal)	\
    ((This)->lpVtbl -> put_Prompt(This,newVal))

#define IUcPpUcadInput_get_Prompt2(This,pVal)	\
    ((This)->lpVtbl -> get_Prompt2(This,pVal))

#define IUcPpUcadInput_put_Prompt2(This,newVal)	\
    ((This)->lpVtbl -> put_Prompt2(This,newVal))

#define IUcPpUcadInput_get_InitGetBit(This,pVal)	\
    ((This)->lpVtbl -> get_InitGetBit(This,pVal))

#define IUcPpUcadInput_put_InitGetBit(This,newVal)	\
    ((This)->lpVtbl -> put_InitGetBit(This,newVal))

#define IUcPpUcadInput_get_InitGetKword(This,pVal)	\
    ((This)->lpVtbl -> get_InitGetKword(This,pVal))

#define IUcPpUcadInput_put_InitGetKword(This,newVal)	\
    ((This)->lpVtbl -> put_InitGetKword(This,newVal))

#define IUcPpUcadInput_get_BasePoint(This,pVal)	\
    ((This)->lpVtbl -> get_BasePoint(This,pVal))

#define IUcPpUcadInput_put_BasePoint(This,newVal)	\
    ((This)->lpVtbl -> put_BasePoint(This,newVal))

#define IUcPpUcadInput_get_PromptType(This,pVal)	\
    ((This)->lpVtbl -> get_PromptType(This,pVal))

#define IUcPpUcadInput_put_PromptType(This,newVal)	\
    ((This)->lpVtbl -> put_PromptType(This,newVal))

#define IUcPpUcadInput_get_EnableNotification(This,pVal)	\
    ((This)->lpVtbl -> get_EnableNotification(This,pVal))

#define IUcPpUcadInput_put_EnableNotification(This,newVal)	\
    ((This)->lpVtbl -> put_EnableNotification(This,newVal))

#define IUcPpUcadInput_DoPrompt(This)	\
    ((This)->lpVtbl -> DoPrompt(This))

#define IUcPpUcadInput_CancelPrompt(This)	\
    ((This)->lpVtbl -> CancelPrompt(This))

#endif


#endif 	




#endif 	


#ifndef __IUcPpPalette_INTERFACE_DEFINED__
#define __IUcPpPalette_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpPalette;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("1FFB5C38-2566-4150-9CE4-D3406BE08DCC")
    IUcPpPalette : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE get_Name(
             BSTR *name) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Name(
             BSTR name) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_InspectorControl(
             IUcPiPropertyInspector **pInspector) = 0;

    };

#else

    typedef struct IUcPpPaletteVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpPalette * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpPalette * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpPalette * This);

         HRESULT ( STDMETHODCALLTYPE *get_Name )(
            IUcPpPalette * This,
             BSTR *name);

         HRESULT ( STDMETHODCALLTYPE *put_Name )(
            IUcPpPalette * This,
             BSTR name);

         HRESULT ( STDMETHODCALLTYPE *get_InspectorControl )(
            IUcPpPalette * This,
             IUcPiPropertyInspector **pInspector);

        END_INTERFACE
    } IUcPpPaletteVtbl;

    interface IUcPpPalette
    {
        CONST_VTBL struct IUcPpPaletteVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpPalette_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpPalette_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpPalette_Release(This)	\
    ((This)->lpVtbl -> Release(This))
#define IUcPpPalette_get_Name(This,name)	\
    ((This)->lpVtbl -> get_Name(This,name))

#define IUcPpPalette_put_Name(This,name)	\
    ((This)->lpVtbl -> put_Name(This,name))

#define IUcPpPalette_get_InspectorControl(This,pInspector)	\
    ((This)->lpVtbl -> get_InspectorControl(This,pInspector))

#endif


#endif 	




#endif 	


#ifndef __IUcPpPaletteEvents_INTERFACE_DEFINED__
#define __IUcPpPaletteEvents_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpPaletteEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("3ADCEB15-D5FD-482E-B622-20F8D0A3F03C")
    IUcPpPaletteEvents : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE OnNameChanged(
             BSTR newName) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnSelectionChanged(
             VARIANT *newObjectArray,
             VARIANT *newPropMgrArray,
             VARIANT_BOOL *bHandled) = 0;

    };

#else

    typedef struct IUcPpPaletteEventsVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpPaletteEvents * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpPaletteEvents * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpPaletteEvents * This);

         HRESULT ( STDMETHODCALLTYPE *OnNameChanged )(
            IUcPpPaletteEvents * This,
             BSTR newName);

         HRESULT ( STDMETHODCALLTYPE *OnSelectionChanged )(
            IUcPpPaletteEvents * This,
             VARIANT *newObjectArray,
             VARIANT *newPropMgrArray,
             VARIANT_BOOL *bHandled);

        END_INTERFACE
    } IUcPpPaletteEventsVtbl;

    interface IUcPpPaletteEvents
    {
        CONST_VTBL struct IUcPpPaletteEventsVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpPaletteEvents_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpPaletteEvents_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpPaletteEvents_Release(This)	\
    ((This)->lpVtbl -> Release(This))
#define IUcPpPaletteEvents_OnNameChanged(This,newName)	\
    ((This)->lpVtbl -> OnNameChanged(This,newName))

#define IUcPpPaletteEvents_OnSelectionChanged(This,newObjectArray,newPropMgrArray,bHandled)	\
    ((This)->lpVtbl -> OnSelectionChanged(This,newObjectArray,newPropMgrArray,bHandled))

#endif


#endif 	




#endif 	


#ifndef __IUcPpPaletteSet_INTERFACE_DEFINED__
#define __IUcPpPaletteSet_INTERFACE_DEFINED__
typedef
enum DockPos
    {
        Floating	= -1,
        Left	= 0xe81c,
        Right	= 0xe81d
    } 	DockPos;
EXTERN_C const IID IID_IUcPpPaletteSet;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("FC0DB1B9-0B5C-40D0-8411-F612830DF409")
    IUcPpPaletteSet : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE AddPalette(
             IUcPpPalette *pPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE DeletePalette(
             IUcPpPalette *pPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE InsertPalette(
             int index,
             IUcPpPalette *pPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetPalette(
             int index,
             IUcPpPalette **pPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetPaletteByName(
             BSTR paletteName,
             IUcPpPalette **pPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE ActivatePalette(
             IUcPpPalette *pPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_PaletteCount(
             int *nPalettes) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Visibility(
             VARIANT_BOOL *bIsVisible) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Visibility(
             VARIANT_BOOL bIsVisible) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_CurrentIndex(
             int *nCurrentIndex) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetDockingState(
             int *nDockPos,
             long *left,
             long *top,
             long *width,
             long *height) = 0;

        virtual  HRESULT STDMETHODCALLTYPE SetDockingState(
             int nDockPos,
             long left,
             long top,
             long width,
             long height) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetFloatingRect(
             long *left,
             long *top,
             long *width,
             long *height) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetDockingRect(
             int *nDockPos,
             long *left,
             long *top,
             long *width,
             long *height) = 0;

    };

#else

    typedef struct IUcPpPaletteSetVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpPaletteSet * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpPaletteSet * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpPaletteSet * This);

         HRESULT ( STDMETHODCALLTYPE *AddPalette )(
            IUcPpPaletteSet * This,
             IUcPpPalette *pPalette);

         HRESULT ( STDMETHODCALLTYPE *DeletePalette )(
            IUcPpPaletteSet * This,
             IUcPpPalette *pPalette);

         HRESULT ( STDMETHODCALLTYPE *InsertPalette )(
            IUcPpPaletteSet * This,
             int index,
             IUcPpPalette *pPalette);

         HRESULT ( STDMETHODCALLTYPE *GetPalette )(
            IUcPpPaletteSet * This,
             int index,
             IUcPpPalette **pPalette);

         HRESULT ( STDMETHODCALLTYPE *GetPaletteByName )(
            IUcPpPaletteSet * This,
             BSTR paletteName,
             IUcPpPalette **pPalette);

         HRESULT ( STDMETHODCALLTYPE *ActivatePalette )(
            IUcPpPaletteSet * This,
             IUcPpPalette *pPalette);

         HRESULT ( STDMETHODCALLTYPE *get_PaletteCount )(
            IUcPpPaletteSet * This,
             int *nPalettes);

         HRESULT ( STDMETHODCALLTYPE *get_Visibility )(
            IUcPpPaletteSet * This,
             VARIANT_BOOL *bIsVisible);

         HRESULT ( STDMETHODCALLTYPE *put_Visibility )(
            IUcPpPaletteSet * This,
             VARIANT_BOOL bIsVisible);

         HRESULT ( STDMETHODCALLTYPE *get_CurrentIndex )(
            IUcPpPaletteSet * This,
             int *nCurrentIndex);

         HRESULT ( STDMETHODCALLTYPE *GetDockingState )(
            IUcPpPaletteSet * This,
             int *nDockPos,
             long *left,
             long *top,
             long *width,
             long *height);

         HRESULT ( STDMETHODCALLTYPE *SetDockingState )(
            IUcPpPaletteSet * This,
             int nDockPos,
             long left,
             long top,
             long width,
             long height);

         HRESULT ( STDMETHODCALLTYPE *GetFloatingRect )(
            IUcPpPaletteSet * This,
             long *left,
             long *top,
             long *width,
             long *height);

         HRESULT ( STDMETHODCALLTYPE *GetDockingRect )(
            IUcPpPaletteSet * This,
             int *nDockPos,
             long *left,
             long *top,
             long *width,
             long *height);

        END_INTERFACE
    } IUcPpPaletteSetVtbl;

    interface IUcPpPaletteSet
    {
        CONST_VTBL struct IUcPpPaletteSetVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpPaletteSet_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpPaletteSet_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpPaletteSet_Release(This)	\
    ((This)->lpVtbl -> Release(This))
#define IUcPpPaletteSet_AddPalette(This,pPalette)	\
    ((This)->lpVtbl -> AddPalette(This,pPalette))

#define IUcPpPaletteSet_DeletePalette(This,pPalette)	\
    ((This)->lpVtbl -> DeletePalette(This,pPalette))

#define IUcPpPaletteSet_InsertPalette(This,index,pPalette)	\
    ((This)->lpVtbl -> InsertPalette(This,index,pPalette))

#define IUcPpPaletteSet_GetPalette(This,index,pPalette)	\
    ((This)->lpVtbl -> GetPalette(This,index,pPalette))

#define IUcPpPaletteSet_GetPaletteByName(This,paletteName,pPalette)	\
    ((This)->lpVtbl -> GetPaletteByName(This,paletteName,pPalette))

#define IUcPpPaletteSet_ActivatePalette(This,pPalette)	\
    ((This)->lpVtbl -> ActivatePalette(This,pPalette))

#define IUcPpPaletteSet_get_PaletteCount(This,nPalettes)	\
    ((This)->lpVtbl -> get_PaletteCount(This,nPalettes))

#define IUcPpPaletteSet_get_Visibility(This,bIsVisible)	\
    ((This)->lpVtbl -> get_Visibility(This,bIsVisible))

#define IUcPpPaletteSet_put_Visibility(This,bIsVisible)	\
    ((This)->lpVtbl -> put_Visibility(This,bIsVisible))

#define IUcPpPaletteSet_get_CurrentIndex(This,nCurrentIndex)	\
    ((This)->lpVtbl -> get_CurrentIndex(This,nCurrentIndex))

#define IUcPpPaletteSet_GetDockingState(This,nDockPos,left,top,width,height)	\
    ((This)->lpVtbl -> GetDockingState(This,nDockPos,left,top,width,height))

#define IUcPpPaletteSet_SetDockingState(This,nDockPos,left,top,width,height)	\
    ((This)->lpVtbl -> SetDockingState(This,nDockPos,left,top,width,height))

#define IUcPpPaletteSet_GetFloatingRect(This,left,top,width,height)	\
    ((This)->lpVtbl -> GetFloatingRect(This,left,top,width,height))

#define IUcPpPaletteSet_GetDockingRect(This,nDockPos,left,top,width,height)	\
    ((This)->lpVtbl -> GetDockingRect(This,nDockPos,left,top,width,height))

#endif


#endif 	




#endif 	

#ifndef __IUcPpPaletteSetEvents_INTERFACE_DEFINED__
#define __IUcPpPaletteSetEvents_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpPaletteSetEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("3B4D50F1-5519-44E7-9F22-0CC1978E83D3")
    IUcPpPaletteSetEvents : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE OnPaletteAdded(
             IUcPpPalette *pNewPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnPaletteDeleted(
             IUcPpPalette *pPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnPaletteActivated(
             IUcPpPalette *pPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnPaletteDeActivated(
             IUcPpPalette *pPalette) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnSelectionChanged(
             VARIANT *newObjectArray,
             VARIANT *newPropMgrArray) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnVisibilityChanged(
             VARIANT_BOOL bIsVisible) = 0;

    };

#else

    typedef struct IUcPpPaletteSetEventsVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpPaletteSetEvents * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpPaletteSetEvents * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpPaletteSetEvents * This);

         HRESULT ( STDMETHODCALLTYPE *OnPaletteAdded )(
            IUcPpPaletteSetEvents * This,
             IUcPpPalette *pNewPalette);

         HRESULT ( STDMETHODCALLTYPE *OnPaletteDeleted )(
            IUcPpPaletteSetEvents * This,
             IUcPpPalette *pPalette);

         HRESULT ( STDMETHODCALLTYPE *OnPaletteActivated )(
            IUcPpPaletteSetEvents * This,
             IUcPpPalette *pPalette);

         HRESULT ( STDMETHODCALLTYPE *OnPaletteDeActivated )(
            IUcPpPaletteSetEvents * This,
             IUcPpPalette *pPalette);

         HRESULT ( STDMETHODCALLTYPE *OnSelectionChanged )(
            IUcPpPaletteSetEvents * This,
             VARIANT *newObjectArray,
             VARIANT *newPropMgrArray);

         HRESULT ( STDMETHODCALLTYPE *OnVisibilityChanged )(
            IUcPpPaletteSetEvents * This,
             VARIANT_BOOL bIsVisible);

        END_INTERFACE
    } IUcPpPaletteSetEventsVtbl;

    interface IUcPpPaletteSetEvents
    {
        CONST_VTBL struct IUcPpPaletteSetEventsVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpPaletteSetEvents_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpPaletteSetEvents_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpPaletteSetEvents_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpPaletteSetEvents_OnPaletteAdded(This,pNewPalette)	\
    ((This)->lpVtbl -> OnPaletteAdded(This,pNewPalette))

#define IUcPpPaletteSetEvents_OnPaletteDeleted(This,pPalette)	\
    ((This)->lpVtbl -> OnPaletteDeleted(This,pPalette))

#define IUcPpPaletteSetEvents_OnPaletteActivated(This,pPalette)	\
    ((This)->lpVtbl -> OnPaletteActivated(This,pPalette))

#define IUcPpPaletteSetEvents_OnPaletteDeActivated(This,pPalette)	\
    ((This)->lpVtbl -> OnPaletteDeActivated(This,pPalette))

#define IUcPpPaletteSetEvents_OnSelectionChanged(This,newObjectArray,newPropMgrArray)	\
    ((This)->lpVtbl -> OnSelectionChanged(This,newObjectArray,newPropMgrArray))

#define IUcPpPaletteSetEvents_OnVisibilityChanged(This,bIsVisible)	\
    ((This)->lpVtbl -> OnVisibilityChanged(This,bIsVisible))

#endif


#endif 	




#endif 	


#ifndef __IUcPpNavTreeNode_INTERFACE_DEFINED__
#define __IUcPpNavTreeNode_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpNavTreeNode;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("11E68B1B-2A9F-4B1D-BB58-CD5A43FB6F30")
    IUcPpNavTreeNode : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE get_ID(
             long *pID) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_ParentID(
             long *pID) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Label(
             BSTR *pLabel) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_LeftIconRes(
             BSTR *pPath) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_LeftIconResType(
             ULONG *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetObject(
            VARIANT *pObject) = 0;

    };

#else

    typedef struct IUcPpNavTreeNodeVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpNavTreeNode * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpNavTreeNode * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpNavTreeNode * This);

         HRESULT ( STDMETHODCALLTYPE *get_ID )(
            IUcPpNavTreeNode * This,
             long *pID);

         HRESULT ( STDMETHODCALLTYPE *get_ParentID )(
            IUcPpNavTreeNode * This,
             long *pID);

         HRESULT ( STDMETHODCALLTYPE *get_Label )(
            IUcPpNavTreeNode * This,
             BSTR *pLabel);

         HRESULT ( STDMETHODCALLTYPE *get_LeftIconRes )(
            IUcPpNavTreeNode * This,
             BSTR *pPath);

         HRESULT ( STDMETHODCALLTYPE *get_LeftIconResType )(
            IUcPpNavTreeNode * This,
             ULONG *pVal);

         HRESULT ( STDMETHODCALLTYPE *GetObject )(
            IUcPpNavTreeNode * This,
            VARIANT *pObject);

        END_INTERFACE
    } IUcPpNavTreeNodeVtbl;

    interface IUcPpNavTreeNode
    {
        CONST_VTBL struct IUcPpNavTreeNodeVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpNavTreeNode_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpNavTreeNode_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpNavTreeNode_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpNavTreeNode_get_ID(This,pID)	\
    ((This)->lpVtbl -> get_ID(This,pID))

#define IUcPpNavTreeNode_get_ParentID(This,pID)	\
    ((This)->lpVtbl -> get_ParentID(This,pID))

#define IUcPpNavTreeNode_get_Label(This,pLabel)	\
    ((This)->lpVtbl -> get_Label(This,pLabel))

#define IUcPpNavTreeNode_get_LeftIconRes(This,pPath)	\
    ((This)->lpVtbl -> get_LeftIconRes(This,pPath))

#define IUcPpNavTreeNode_get_LeftIconResType(This,pVal)	\
    ((This)->lpVtbl -> get_LeftIconResType(This,pVal))

#define IUcPpNavTreeNode_GetObject(This,pObject)	\
    ((This)->lpVtbl -> GetObject(This,pObject))

#endif


#endif 	




#endif 	


#ifndef __IUcPpNavTreeNodeCollectionIter_INTERFACE_DEFINED__
#define __IUcPpNavTreeNodeCollectionIter_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpNavTreeNodeCollectionIter;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("82AE492A-56B9-45CB-81DD-9678CA98E3B4")
    IUcPpNavTreeNodeCollectionIter : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE Start( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE Next( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE Current(
             IUcPpNavTreeNode **pNode) = 0;

        virtual  HRESULT STDMETHODCALLTYPE Done(
             VARIANT_BOOL *pBool) = 0;

    };

#else

    typedef struct IUcPpNavTreeNodeCollectionIterVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpNavTreeNodeCollectionIter * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpNavTreeNodeCollectionIter * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpNavTreeNodeCollectionIter * This);

         HRESULT ( STDMETHODCALLTYPE *Start )(
            IUcPpNavTreeNodeCollectionIter * This);

         HRESULT ( STDMETHODCALLTYPE *Next )(
            IUcPpNavTreeNodeCollectionIter * This);

         HRESULT ( STDMETHODCALLTYPE *Current )(
            IUcPpNavTreeNodeCollectionIter * This,
             IUcPpNavTreeNode **pNode);

         HRESULT ( STDMETHODCALLTYPE *Done )(
            IUcPpNavTreeNodeCollectionIter * This,
             VARIANT_BOOL *pBool);

        END_INTERFACE
    } IUcPpNavTreeNodeCollectionIterVtbl;

    interface IUcPpNavTreeNodeCollectionIter
    {
        CONST_VTBL struct IUcPpNavTreeNodeCollectionIterVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpNavTreeNodeCollectionIter_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpNavTreeNodeCollectionIter_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpNavTreeNodeCollectionIter_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpNavTreeNodeCollectionIter_Start(This)	\
    ((This)->lpVtbl -> Start(This))

#define IUcPpNavTreeNodeCollectionIter_Next(This)	\
    ((This)->lpVtbl -> Next(This))

#define IUcPpNavTreeNodeCollectionIter_Current(This,pNode)	\
    ((This)->lpVtbl -> Current(This,pNode))

#define IUcPpNavTreeNodeCollectionIter_Done(This,pBool)	\
    ((This)->lpVtbl -> Done(This,pBool))

#endif


#endif 	




#endif 	


#ifndef __IUcPpNavTreeNodeCollection_INTERFACE_DEFINED__
#define __IUcPpNavTreeNodeCollection_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpNavTreeNodeCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9A28A23F-9714-4C48-8BE9-CB8D591F1F3C")
    IUcPpNavTreeNodeCollection : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE AddNode(
             IUcPpNavTreeNode *pNode) = 0;

        virtual  HRESULT STDMETHODCALLTYPE DeleteNode(
             IUcPpNavTreeNode *pNode) = 0;

        virtual  HRESULT STDMETHODCALLTYPE DeleteAllNodes( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetNodeCollectionIter(
             IUcPpNavTreeNodeCollectionIter **PIter) = 0;

    };

#else

    typedef struct IUcPpNavTreeNodeCollectionVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpNavTreeNodeCollection * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpNavTreeNodeCollection * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpNavTreeNodeCollection * This);

         HRESULT ( STDMETHODCALLTYPE *AddNode )(
            IUcPpNavTreeNodeCollection * This,
             IUcPpNavTreeNode *pNode);

         HRESULT ( STDMETHODCALLTYPE *DeleteNode )(
            IUcPpNavTreeNodeCollection * This,
             IUcPpNavTreeNode *pNode);

         HRESULT ( STDMETHODCALLTYPE *DeleteAllNodes )(
            IUcPpNavTreeNodeCollection * This);

         HRESULT ( STDMETHODCALLTYPE *GetNodeCollectionIter )(
            IUcPpNavTreeNodeCollection * This,
             IUcPpNavTreeNodeCollectionIter **PIter);

        END_INTERFACE
    } IUcPpNavTreeNodeCollectionVtbl;

    interface IUcPpNavTreeNodeCollection
    {
        CONST_VTBL struct IUcPpNavTreeNodeCollectionVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpNavTreeNodeCollection_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpNavTreeNodeCollection_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpNavTreeNodeCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpNavTreeNodeCollection_AddNode(This,pNode)	\
    ((This)->lpVtbl -> AddNode(This,pNode))

#define IUcPpNavTreeNodeCollection_DeleteNode(This,pNode)	\
    ((This)->lpVtbl -> DeleteNode(This,pNode))

#define IUcPpNavTreeNodeCollection_DeleteAllNodes(This)	\
    ((This)->lpVtbl -> DeleteAllNodes(This))

#define IUcPpNavTreeNodeCollection_GetNodeCollectionIter(This,PIter)	\
    ((This)->lpVtbl -> GetNodeCollectionIter(This,PIter))

#endif


#endif 	




#endif 	


#ifndef __IUcPpNavTreeCmdBtn_INTERFACE_DEFINED__
#define __IUcPpNavTreeCmdBtn_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpNavTreeCmdBtn;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("17F515C8-18E6-4731-A29A-12A5AB72F2A9")
    IUcPpNavTreeCmdBtn : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE get_Name(
             BSTR *pName) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetBtnImage(
             BSTR *pPath,
             ULONG *pImgType) = 0;

        virtual  HRESULT STDMETHODCALLTYPE Execute( void) = 0;

    };

#else

    typedef struct IUcPpNavTreeCmdBtnVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpNavTreeCmdBtn * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpNavTreeCmdBtn * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpNavTreeCmdBtn * This);

         HRESULT ( STDMETHODCALLTYPE *get_Name )(
            IUcPpNavTreeCmdBtn * This,
             BSTR *pName);

         HRESULT ( STDMETHODCALLTYPE *GetBtnImage )(
            IUcPpNavTreeCmdBtn * This,
             BSTR *pPath,
             ULONG *pImgType);

         HRESULT ( STDMETHODCALLTYPE *Execute )(
            IUcPpNavTreeCmdBtn * This);

        END_INTERFACE
    } IUcPpNavTreeCmdBtnVtbl;

    interface IUcPpNavTreeCmdBtn
    {
        CONST_VTBL struct IUcPpNavTreeCmdBtnVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpNavTreeCmdBtn_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpNavTreeCmdBtn_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpNavTreeCmdBtn_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpNavTreeCmdBtn_get_Name(This,pName)	\
    ((This)->lpVtbl -> get_Name(This,pName))

#define IUcPpNavTreeCmdBtn_GetBtnImage(This,pPath,pImgType)	\
    ((This)->lpVtbl -> GetBtnImage(This,pPath,pImgType))

#define IUcPpNavTreeCmdBtn_Execute(This)	\
    ((This)->lpVtbl -> Execute(This))

#endif


#endif 	




#endif 	


#ifndef __IUcPpNavTreeCmdBtnCollectionIter_INTERFACE_DEFINED__
#define __IUcPpNavTreeCmdBtnCollectionIter_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpNavTreeCmdBtnCollectionIter;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("1B14B5F9-D967-4C62-AE3B-FAD4CF051F63")
    IUcPpNavTreeCmdBtnCollectionIter : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE Start( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE Next( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE Current(
             IUcPpNavTreeCmdBtn **pNode) = 0;

        virtual  HRESULT STDMETHODCALLTYPE Done(
             VARIANT_BOOL *pBool) = 0;

    };

#else

    typedef struct IUcPpNavTreeCmdBtnCollectionIterVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpNavTreeCmdBtnCollectionIter * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpNavTreeCmdBtnCollectionIter * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpNavTreeCmdBtnCollectionIter * This);

         HRESULT ( STDMETHODCALLTYPE *Start )(
            IUcPpNavTreeCmdBtnCollectionIter * This);

         HRESULT ( STDMETHODCALLTYPE *Next )(
            IUcPpNavTreeCmdBtnCollectionIter * This);

         HRESULT ( STDMETHODCALLTYPE *Current )(
            IUcPpNavTreeCmdBtnCollectionIter * This,
             IUcPpNavTreeCmdBtn **pNode);

         HRESULT ( STDMETHODCALLTYPE *Done )(
            IUcPpNavTreeCmdBtnCollectionIter * This,
             VARIANT_BOOL *pBool);

        END_INTERFACE
    } IUcPpNavTreeCmdBtnCollectionIterVtbl;

    interface IUcPpNavTreeCmdBtnCollectionIter
    {
        CONST_VTBL struct IUcPpNavTreeCmdBtnCollectionIterVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpNavTreeCmdBtnCollectionIter_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpNavTreeCmdBtnCollectionIter_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpNavTreeCmdBtnCollectionIter_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpNavTreeCmdBtnCollectionIter_Start(This)	\
    ((This)->lpVtbl -> Start(This))

#define IUcPpNavTreeCmdBtnCollectionIter_Next(This)	\
    ((This)->lpVtbl -> Next(This))

#define IUcPpNavTreeCmdBtnCollectionIter_Current(This,pNode)	\
    ((This)->lpVtbl -> Current(This,pNode))

#define IUcPpNavTreeCmdBtnCollectionIter_Done(This,pBool)	\
    ((This)->lpVtbl -> Done(This,pBool))

#endif


#endif 	




#endif 	


#ifndef __IUcPpNavTreeCmdBtnCollection_INTERFACE_DEFINED__
#define __IUcPpNavTreeCmdBtnCollection_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpNavTreeCmdBtnCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("5AD8767E-93C1-4256-8031-29D726F4D8ED")
    IUcPpNavTreeCmdBtnCollection : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE AddButton(
             IUcPpNavTreeCmdBtn *pBtn) = 0;

        virtual  HRESULT STDMETHODCALLTYPE DeleteButton(
             IUcPpNavTreeCmdBtn *pBtn) = 0;

        virtual  HRESULT STDMETHODCALLTYPE DeleteAllButtons( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetCmdBtnCollectionIter(
             IUcPpNavTreeCmdBtnCollectionIter **pIter) = 0;

    };

#else

    typedef struct IUcPpNavTreeCmdBtnCollectionVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpNavTreeCmdBtnCollection * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpNavTreeCmdBtnCollection * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpNavTreeCmdBtnCollection * This);

         HRESULT ( STDMETHODCALLTYPE *AddButton )(
            IUcPpNavTreeCmdBtnCollection * This,
             IUcPpNavTreeCmdBtn *pBtn);

         HRESULT ( STDMETHODCALLTYPE *DeleteButton )(
            IUcPpNavTreeCmdBtnCollection * This,
             IUcPpNavTreeCmdBtn *pBtn);

         HRESULT ( STDMETHODCALLTYPE *DeleteAllButtons )(
            IUcPpNavTreeCmdBtnCollection * This);

         HRESULT ( STDMETHODCALLTYPE *GetCmdBtnCollectionIter )(
            IUcPpNavTreeCmdBtnCollection * This,
             IUcPpNavTreeCmdBtnCollectionIter **pIter);

        END_INTERFACE
    } IUcPpNavTreeCmdBtnCollectionVtbl;

    interface IUcPpNavTreeCmdBtnCollection
    {
        CONST_VTBL struct IUcPpNavTreeCmdBtnCollectionVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpNavTreeCmdBtnCollection_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpNavTreeCmdBtnCollection_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpNavTreeCmdBtnCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpNavTreeCmdBtnCollection_AddButton(This,pBtn)	\
    ((This)->lpVtbl -> AddButton(This,pBtn))

#define IUcPpNavTreeCmdBtnCollection_DeleteButton(This,pBtn)	\
    ((This)->lpVtbl -> DeleteButton(This,pBtn))

#define IUcPpNavTreeCmdBtnCollection_DeleteAllButtons(This)	\
    ((This)->lpVtbl -> DeleteAllButtons(This))

#define IUcPpNavTreeCmdBtnCollection_GetCmdBtnCollectionIter(This,pIter)	\
    ((This)->lpVtbl -> GetCmdBtnCollectionIter(This,pIter))

#endif


#endif 	




#endif 	


#ifndef __IUcPpNavTree_INTERFACE_DEFINED__
#define __IUcPpNavTree_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpNavTree;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("3412E0C1-20F7-43DD-B9ED-4299CCD4506C")
    IUcPpNavTree : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE Reset(
             IUcPpNavTreeNodeCollection *pNodeCollection,
             IUcPpNavTreeCmdBtnCollection *pCmdBtnCollection) = 0;

    };

#else

    typedef struct IUcPpNavTreeVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpNavTree * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpNavTree * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpNavTree * This);

         HRESULT ( STDMETHODCALLTYPE *Reset )(
            IUcPpNavTree * This,
             IUcPpNavTreeNodeCollection *pNodeCollection,
             IUcPpNavTreeCmdBtnCollection *pCmdBtnCollection);

        END_INTERFACE
    } IUcPpNavTreeVtbl;

    interface IUcPpNavTree
    {
        CONST_VTBL struct IUcPpNavTreeVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpNavTree_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpNavTree_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpNavTree_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpNavTree_Reset(This,pNodeCollection,pCmdBtnCollection)	\
    ((This)->lpVtbl -> Reset(This,pNodeCollection,pCmdBtnCollection))

#endif


#endif 	




#endif 	


#ifndef __IUcPpNavTreeEvents_INTERFACE_DEFINED__
#define __IUcPpNavTreeEvents_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpNavTreeEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("E08AE839-864C-42A7-90D2-F700306C811C")
    IUcPpNavTreeEvents : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE OnSelectionChanged(
             VARIANT *pIntArray,
             VARIANT *pObjUnkArray,
             VARIANT_BOOL *bHandled) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnDblClickTreeItem(
             ULONG index,
             UINT nResourceId) = 0;

    };

#else

    typedef struct IUcPpNavTreeEventsVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpNavTreeEvents * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpNavTreeEvents * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpNavTreeEvents * This);

         HRESULT ( STDMETHODCALLTYPE *OnSelectionChanged )(
            IUcPpNavTreeEvents * This,
             VARIANT *pIntArray,
             VARIANT *pObjUnkArray,
             VARIANT_BOOL *bHandled);

         HRESULT ( STDMETHODCALLTYPE *OnDblClickTreeItem )(
            IUcPpNavTreeEvents * This,
             ULONG index,
             UINT nResourceId);

        END_INTERFACE
    } IUcPpNavTreeEventsVtbl;

    interface IUcPpNavTreeEvents
    {
        CONST_VTBL struct IUcPpNavTreeEventsVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpNavTreeEvents_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpNavTreeEvents_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpNavTreeEvents_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpNavTreeEvents_OnSelectionChanged(This,pIntArray,pObjUnkArray,bHandled)	\
    ((This)->lpVtbl -> OnSelectionChanged(This,pIntArray,pObjUnkArray,bHandled))

#define IUcPpNavTreeEvents_OnDblClickTreeItem(This,index,nResourceId)	\
    ((This)->lpVtbl -> OnDblClickTreeItem(This,index,nResourceId))

#endif


#endif 	




#endif 	


#ifndef __IUcPpPalette2_INTERFACE_DEFINED__
#define __IUcPpPalette2_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPpPalette2;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("772460DD-82F1-4E99-B7BF-5AA4B31E3DB1")
    IUcPpPalette2 : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE get_NavTree(
             IUcPpNavTree **pNavTree) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_NavTree(
             IUcPpNavTree *pNavTree) = 0;

    };

#else

    typedef struct IUcPpPalette2Vtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPpPalette2 * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPpPalette2 * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPpPalette2 * This);

         HRESULT ( STDMETHODCALLTYPE *get_NavTree )(
            IUcPpPalette2 * This,
             IUcPpNavTree **pNavTree);

         HRESULT ( STDMETHODCALLTYPE *put_NavTree )(
            IUcPpPalette2 * This,
             IUcPpNavTree *pNavTree);

        END_INTERFACE
    } IUcPpPalette2Vtbl;

    interface IUcPpPalette2
    {
        CONST_VTBL struct IUcPpPalette2Vtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPpPalette2_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPpPalette2_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPpPalette2_Release(This)	\
    (This)->lpVtbl -> Release(This)
#define IUcPpPalette2_get_NavTree(This,pNavTree)	\
    ((This)->lpVtbl -> get_NavTree(This,pNavTree))

#define IUcPpPalette2_put_NavTree(This,pNavTree)	\
    ((This)->lpVtbl -> put_NavTree(This,pNavTree))

#endif


#endif 	




#endif 	



#ifndef __UcPpLib_LIBRARY_DEFINED__
#define __UcPpLib_LIBRARY_DEFINED__
EXTERN_C const IID LIBID_UcPpLib;

EXTERN_C const CLSID CLSID_UcPpUcadInput;

#ifdef __cplusplus

class DECLSPEC_UUID("89E1C2E7-47F3-464D-8BDA-5E0E4E73DD3F")
UcPpUcadInput;
#endif

EXTERN_C const CLSID CLSID_UcPpPaletteSet;

#ifdef __cplusplus

class DECLSPEC_UUID("7B600A29-6FB8-4C83-A295-789182585BB9")
UcPpPaletteSet;
#endif

EXTERN_C const CLSID CLSID_UcPpPalette;

#ifdef __cplusplus

class DECLSPEC_UUID("5F2D7602-9376-49E1-A772-CD896E8B4E03")
UcPpPalette;
#endif

EXTERN_C const CLSID CLSID_UcPpPalette2;

#ifdef __cplusplus

class DECLSPEC_UUID("D43BEA50-AE29-4bd6-83B6-DE3ED23F517A")
UcPpPalette2;
#endif

EXTERN_C const CLSID CLSID_UcPpNavTree;

#ifdef __cplusplus

class DECLSPEC_UUID("F06460E2-3313-47B0-B464-DAC6B1F45A21")
UcPpNavTree;
#endif

EXTERN_C const CLSID CLSID_UcPpNavTreeNode;

#ifdef __cplusplus

class DECLSPEC_UUID("927E6A91-B46D-4149-B0F9-EC25712FF1E0")
UcPpNavTreeNode;
#endif
#endif
unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * );
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * );
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * );

unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long *, unsigned long            , VARIANT * );
unsigned char * __RPC_USER  VARIANT_UserMarshal(  unsigned long *, unsigned char *, VARIANT * );
unsigned char * __RPC_USER  VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
void                      __RPC_USER  VARIANT_UserFree(     unsigned long *, VARIANT * );
#ifdef __cplusplus
}
#endif

#endif


